package org.micode.common.config;

import ch.qos.logback.core.PropertyDefinerBase;
import lombok.extern.slf4j.Slf4j;

import java.net.InetAddress;

/**
 * log 里面的 IP 地址属性定义。
 *
 * logback.xml中的定义：
 *     <define name="ip" class="org.micode.common.config.LogIpConfig" />
 *
 * logback.xml中的使用(比如: 把IP地址作为文件名的一部分):
 * 			<fileNamePattern>/logs/log-%d{yyyy-MM-dd}-[${ip}].log</fileNamePattern>
 */
@Slf4j
public class LogIpConfig extends PropertyDefinerBase {

    @Override
    public String getPropertyValue() {
        try {
            String ip = InetAddress.getLocalHost().getHostAddress();
            log.info("读到的机器IP地址是：{}", ip);
            return ip;
        } catch (Exception ignore) {
            // 这里什么都不做
        }
        return null;
    }

}